package com.uam.service;

import com.uam.web.common.model.Result;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author uam
 * @create 2023/12/1 1:07
 * @email uam@uam.com
 */
public interface AircraftService {
    /**
     * 飞行器添加接口
     *
     * @param request                请求头
     * @param airplaneId             飞行器id
     * @param airplaneName           飞行器名称
     * @param maxEndurance           最大续航
     * @param minAltitude            最小高度
     * @param maxAltitude            最大高度
     * @param maxSpeed               最大速度
     * @param avgSpeed               平均速度
     * @param modelName              模型名称
     * @param flightInterval         飞行间隔
     * @param verticalAcceleration   垂直加速度
     * @param horizontalAcceleration 水平加速度
     * @return 结果
     */
    Result add(HttpServletRequest request, Long airplaneId, String airplaneName, Integer maxEndurance, Integer minAltitude, Integer maxAltitude, Integer maxSpeed, Integer avgSpeed, String modelName, Integer flightInterval, Integer verticalAcceleration, Integer horizontalAcceleration);

    /**
     * 飞行器编辑接口
     *
     * @param request                请求头
     * @param airplaneId             飞行器id
     * @param airplaneName           飞行器名称
     * @param maxEndurance           最大续航
     * @param minAltitude            最小高度
     * @param maxAltitude            最大高度
     * @param maxSpeed               最大速度
     * @param avgSpeed               平均速度
     * @param modelName              模型名称
     * @param flightInterval         飞行间隔
     * @param verticalAcceleration   垂直加速度
     * @param horizontalAcceleration 水平加速度
     * @return 结果
     */
    Result edit(HttpServletRequest request, Long airplaneId, String airplaneName, Integer maxEndurance, Integer minAltitude, Integer maxAltitude, Integer maxSpeed, Integer avgSpeed, String modelName, Integer flightInterval, Integer verticalAcceleration, Integer horizontalAcceleration);

    /**
     * 删除飞行器
     *
     * @param request 请求头
     * @param userIds 飞行器id
     * @return 结果
     */
    Result delete(HttpServletRequest request, List<Long> userIds);

    /**
     * 飞行器列表
     *
     * @param pageNum      页码
     * @param pageSize     页面大小
     * @param airplaneName 飞行器名称
     * @param createBy     创建人
     * @param airplaneId
     * @return 结果
     */
    Result list(Integer pageNum, Integer pageSize, String airplaneName, String createBy, Integer airplaneId);
}
